package day_2022_9_to_12.Day;

/**
 * @author haomin
 * @date 2022/09/07 14:22
 **/
public class Day5_2_Offer67_StrToInt {
    class Solution {
        public int strToInt(String str) {
            int i = 0;
            boolean flag = false;
            str = str.trim();
            if(str.length() == 0) return 0;
            if((!Character.isDigit(str.charAt(i))) && str.charAt(i) != '+' && str.charAt(i) != '-') return 0;
            long ans = 0;
            if(str.charAt(i) == '+') i++;
            else if(str.charAt(i) == '-'){
                flag = true; i++;
            }
            while(Character.isDigit(str.charAt(i))){
                ans = ans * 10 + (str.charAt(i) - '0');
                if(!flag && ans > Integer.MAX_VALUE) return Integer.MAX_VALUE;
                else if(flag && -ans < Integer.MIN_VALUE) return Integer.MIN_VALUE;
                i++;
            }
            return !flag ? (int)ans : (int)(-ans);
        }
    }
}